package day20180129.designMode.one_Iterater;

/**
 * Created by 14394 on 2018/1/29.
 */
public class Test {

    /*
    *使用场景：
     *     访问一个聚合对象的内容，而无需暴露它内部的实现
      *     需要为聚合对象提供多种遍历方式
      *     为遍历不同的聚合结构提供一个统一的接口
      * 特点： 分离了集合对象的存储职责和遍历职责
      *       增加新的聚合类和迭代器类都很方便
    * */
    public static void main(String[] args) {
        BookShelf bookShelf= new BookShelf(4);
        bookShelf.appendBook(new Book("《编译原理》"));
        bookShelf.appendBook(new Book("《高等数学》"));
        bookShelf.appendBook(new Book("《java编程思想》"));
        bookShelf.appendBook(new Book("《线性代数》"));

        IteratorPattern iteratorPattern= bookShelf.iterator();
        while (iteratorPattern.hasNext()){
            Book book = (Book) iteratorPattern.next();
            System.out.println("书名："+book.getName());
        }
    }
}
